package com.ruoyi.common.core.domain.entity;

import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.xss.Xss;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * 车场配置记录实体类
 *
 * @author ruoyi
 */
public class ParkConfig extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 服务器地址 */
    @NotBlank(message = "服务器地址不能为空")
    @Size(min = 0, max = 100, message = "服务器地址长度不能超过100个字符")
    private String serverAddress;

    /** 车场名称 */
    @Xss(message = "车场名称不能包含脚本字符")
    @NotBlank(message = "车场名称不能为空")
    @Size(min = 0, max = 100, message = "车场名称长度不能超过100个字符")
    private String parkName;

    /** 客服电话 */
    @NotBlank(message = "客服电话不能为空")
    @Size(min = 0, max = 20, message = "客服电话长度不能超过20个字符")
    private String contactPhone;

    /** 车场服务商 */
    @NotBlank(message = "车场服务商不能为空")
    @Size(min = 0, max = 50, message = "车场服务商长度不能超过50个字符")
    private String serviceProvider;

    /** 平台PID */
    @NotBlank(message = "平台PID不能为空")
    @Size(min = 0, max = 50, message = "平台PID长度不能超过50个字符")
    private String platformPid;

    /** 平台KEY */
    @NotBlank(message = "平台KEY不能为空")
    @Size(min = 0, max = 100, message = "平台KEY长度不能超过100个字符")
    private String platformKey;

    /** 平台编码 */
    @NotBlank(message = "平台编码不能为空")
    @Size(min = 0, max = 50, message = "平台编码长度不能超过50个字符")
    private String platformCode;

    /** 车场ID */
    @NotBlank(message = "车场ID不能为空")
    @Size(min = 0, max = 50, message = "车场ID长度不能超过50个字符")
    private String parkId;

    /** 其它参数 */
    @Size(min = 0, max = 255, message = "其它参数长度不能超过255个字符")
    private String otherParams;

    /** 会员计费规则 */
    @Size(min = 0, max = 50, message = "会员计费规则长度不能超过50个字符")
    private Long memberRule;

    /** 交费页海报URL */
    @Size(min = 0, max = 255, message = "海报URL长度不能超过255个字符")
    private String posterUrl;

    /** 会员权益说明 */
    private String memberRights;

    /** 海报链接类型 */
    @Size(min = 0, max = 20, message = "海报链接类型长度不能超过20个字符")
    private String posterLinkType;

    /** 小程序路径 */
    @Size(min = 0, max = 255, message = "小程序路径长度不能超过255个字符")
    private String miniProgramPath;

    /** 小程序AppID */
    @Size(min = 0, max = 50, message = "小程序AppID长度不能超过50个字符")
    private String miniProgramAppId;

    /** 外部链接 */
    @Size(min = 0, max = 255, message = "外部链接长度不能超过255个字符")
    private String externalLink;

    /** 出场时间提示(分钟) */
    private Integer departureNotice;

    /** 删除标志（0-正常，1-已删除） */
    private Integer deleted;

    public ParkConfig() {}

    public ParkConfig(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getServerAddress() {
        return serverAddress;
    }

    public void setServerAddress(String serverAddress) {
        this.serverAddress = serverAddress;
    }

    public String getParkName() {
        return parkName;
    }

    public void setParkName(String parkName) {
        this.parkName = parkName;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getServiceProvider() {
        return serviceProvider;
    }

    public void setServiceProvider(String serviceProvider) {
        this.serviceProvider = serviceProvider;
    }

    public String getPlatformPid() {
        return platformPid;
    }

    public void setPlatformPid(String platformPid) {
        this.platformPid = platformPid;
    }

    public String getPlatformKey() {
        return platformKey;
    }

    public void setPlatformKey(String platformKey) {
        this.platformKey = platformKey;
    }

    public String getPlatformCode() {
        return platformCode;
    }

    public void setPlatformCode(String platformCode) {
        this.platformCode = platformCode;
    }

    public String getParkId() {
        return parkId;
    }

    public void setParkId(String parkId) {
        this.parkId = parkId;
    }

    public String getOtherParams() {
        return otherParams;
    }

    public void setOtherParams(String otherParams) {
        this.otherParams = otherParams;
    }

    public Long getMemberRule() {
        return memberRule;
    }

    public void setMemberRule(Long memberRule) {
        this.memberRule = memberRule;
    }

    public String getPosterUrl() {
        return posterUrl;
    }

    public void setPosterUrl(String posterUrl) {
        this.posterUrl = posterUrl;
    }

    public String getMemberRights() {
        return memberRights;
    }

    public void setMemberRights(String memberRights) {
        this.memberRights = memberRights;
    }

    public String getPosterLinkType() {
        return posterLinkType;
    }

    public void setPosterLinkType(String posterLinkType) {
        this.posterLinkType = posterLinkType;
    }

    public String getMiniProgramPath() {
        return miniProgramPath;
    }

    public void setMiniProgramPath(String miniProgramPath) {
        this.miniProgramPath = miniProgramPath;
    }

    public String getMiniProgramAppId() {
        return miniProgramAppId;
    }

    public void setMiniProgramAppId(String miniProgramAppId) {
        this.miniProgramAppId = miniProgramAppId;
    }

    public String getExternalLink() {
        return externalLink;
    }

    public void setExternalLink(String externalLink) {
        this.externalLink = externalLink;
    }

    public Integer getDepartureNotice() {
        return departureNotice;
    }

    public void setDepartureNotice(Integer departureNotice) {
        this.departureNotice = departureNotice;
    }

    public Integer getDeleted() {
        return deleted;
    }

    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("serverAddress", getServerAddress())
                .append("parkName", getParkName())
                .append("contactPhone", getContactPhone())
                .append("serviceProvider", getServiceProvider())
                .append("platformPid", getPlatformPid())
                .append("platformKey", getPlatformKey())
                .append("platformCode", getPlatformCode())
                .append("parkId", getParkId())
                .append("otherParams", getOtherParams())
                .append("memberRule", getMemberRule())
                .append("posterUrl", getPosterUrl())
                .append("memberRights", getMemberRights())
                .append("posterLinkType", getPosterLinkType())
                .append("miniProgramPath", getMiniProgramPath())
                .append("miniProgramAppId", getMiniProgramAppId())
                .append("externalLink", getExternalLink())
                .append("departureNotice", getDepartureNotice())
                .append("deleted", getDeleted())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
